// 
// File:   MyVertexClass.h
// Author: ben
//
// Created on April 28, 2008, 1:04 AM
//

#ifndef _MYVERTEXCLASS_H
#define	_MYVERTEXCLASS_H

#include <list>
#include <iostream>
#include <string.h>
#include <vector>


using namespace std;

typedef class MyVertex{
public:
    MyVertex();
    ~MyVertex();
    void ConnectTo(int TheNext,double TheWeight);
    void ShowNext();
    list<int> GetNext(){return(VNext);};
    list<double> GetWeight(){return(dNextWeight);}
    
    void SetMarker(int TheMarker){marker=TheMarker;};
    int GetMarker(){return(marker);};
    
    string GetName(){return(thisName);};
    int SetName(string newname){thisName=newname;return(0);};
    
    string GetColor(){return(thisColor);};
    int SetColor(string newcolor){thisColor=newcolor;return(0);};
    
    int GetNumberVertices(){return(VNext.size());};
    //int GetNextVertice(int i){return(VNext[i]);};
    
    int SortNext(bool Permute);
    
    int getNext(int i);

    double getWeight(int i);
    
private:
    int marker;
    string thisName;
    string thisColor;
    list<int> VNext;           //Liste des suivants
    list<double> dNextWeight;  //liste des poids
}MyVertex;


#endif	/* _MYVERTEXCLASS_H */

